#pragma once

#include <PA9.h>

#include "all_gfx.h" // pra ter acesso aos sprites

#include "estados.h"

/**
 * GUI. Interface Grafica.
 * Utiliza a tela inferior do console.
 */
class GUI{
private:
	u32 score;
	u16 vida;
	u8 id_timer;//referencia no SM.
	
public:
	//u32 *numero_agentes_criados;
	//u32 *numero_paletas_criadas;
	
	GUI(){
		score = 0;
		vida = 0;
		id_timer = 0;

		//Simples teste de escrita de texto
		PA_InitText(TELA_MENU, 0);
		PA_SetTextCol(TELA_MENU,20,20,20);	

	}

	~GUI(){}

	void init();

	inline void showHUD()
	{
		//tirando da tela.
		PA_SetSpriteX(TELA_MENU,0,-50);
		PA_SetSpriteX(TELA_MENU,1,-50);

		//TExto
		PA_InitText(TELA_MENU, 0);
		PA_SetTextCol(TELA_MENU,20,20,20);	

		PA_OutputText(TELA_MENU,1,1,"Score: %d", score);	
		
		PA_OutputText(TELA_MENU,20,1,"Life: %d", vida);	
		
		PA_OutputText(TELA_MENU,1,2,"Tempo: %d", Tick(id_timer)/1000);	
		
		PA_OutputSimpleText(TELA_MENU,0,18,"- ALIEN CONQUER. NINTENDO DS. -");
	}

	inline void showMainMenu()
	{
		PA_SetSpriteX(TELA_MENU,0,110);
		PA_SetSpriteX(TELA_MENU,1,110);
		/*
		PA_OutputText(TELA_MENU,1,1,"           ");	
		
		PA_OutputText(TELA_MENU,20,1,"          ");	
		
		PA_OutputText(TELA_MENU,1,2,"           ");	
		*/
		
	}

	inline bool checkStylus(int sprite)
	{
		if (PA_SpriteTouched(sprite)) 
		{	
			//PA_OutputText(TELA_MENU, 0, 25, "PA_SpriteTouched");
			return true;
		}
		else
			return false;		
	}

	inline void setVida(int newVida){	vida = newVida;	}
	inline void setScore(int newScore){	score = newScore;	}
	inline void set_id_timer(u8 idt){	id_timer = idt;	}
};
